package aquarium;

import aquarium.reseau.ClientTCP;
import aquarium.reseau.ServeurTCP;


public class Start  {
	public static void main(String[] args) {

		if (args.length <= 0){
			System.out.println("Pas assez d'argument : Java Start <type>");
			System.out.println("Les types sont : 1_Serveur, 2_Client + [option]");
			System.out.println("Pour plus d'information tapez : Java Start h");
			return;
		}

		else{
			String type = args[0];

			/*********** Serveur *************/
			
			if (type.compareTo("-s") == 0){ // On lance le serveur

				int port = 9999;
				if (args.length <= 1) // Pas de port précisé
					System.out.println("Port non déclaré, le port par defaut est 9999 : Java Start 1 <port>");
				else
					port = Integer.parseInt(args[1]);

				if(port < 0 || port > 65535){ // Le port n'existe pas
					System.out.println("Port incorrect");
					return;
				}

				ServeurTCP server = new ServeurTCP();
				server.start(port);
			}
			
			/************ Client **************/
			
			if (type.compareTo("-c") == 0){ // On lance le client

				String address = "localhost";
				int port = 9999;
				if(args.length <= 1) // Pas d'adresse ni de port precisé
					System.out.println("Port non déclaré, adresse par defaut : localhost, port par defaut : 9999 : Java Start 2 <adresse> <port>");
				else{
					if(args.length >= 3){
						address = args[1];
						port = Integer.parseInt(args[2]);
					}
					else{
						try {
							port = Integer.parseInt(args[1]);
							// C'est le port qui a été mis
						}
						catch (Exception e) {
							address = args[1];
							// C'est l'addresse qui a été mis
						}
					}
				}
				if(port < 0 || port > 65535){ // Le port n'existe pas
					System.out.println("Port incorrect");
					return;
				}

				ClientTCP client = new ClientTCP();
				client.start(address, port);

			}
			
			/************* Aide ***************/
			
			if (type.compareTo("-h") == 0){ // On lance le serveur
				System.out.println("Help : Java Start <type> [option]");
				System.out.println("Différents types : s = Serveur et c = Client");
				System.out.println("Différentes options : address = nom de l'ordinateur et port = nombre entier entre 0 et 65535");
			}

		}
	}
}
